﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace AssemblyDemo
{
    public class A
    {
        public virtual void Show()
        {
            Console.WriteLine("A.Show()");
        }
    }

    public class B: A
    {
        public override void Show()
        {
            Console.WriteLine("B.Show()");
        }
    }

    public class C : B
    {
        public sealed override void Show()
        {
            Console.WriteLine("C.Show()");
        }
    }

    public class D : C
    {
        public void Show()
        {
            //base.Show();
            Console.WriteLine("D.Show()");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            D d = new D();
            d.Show();
        }
    }
}
